লারাভেল (Laravel) ফ্রেমওয়ার্কের একটি গুরুত্বপূর্ণ বৈশিষ্ট্য হলো এলোকোয়েন্ট ORM (Object-Relational Mapping)। এটি একটি শক্তিশালী এবং সহজ ব্যবস্থাপনা সিস্টেম যা ডেটাবেসের সাথে কাজ করার জন্য অত্যন্ত কার্যকর। এলোকোয়েন্ট (Eloquent) ORM এর মাধ্যমে, আপনি ডেটাবেসের টেবিলের সাথে সম্পর্কিত মডেল তৈরি করে সহজে ডেটা পরিচালনা করতে পারেন, যেখানে SQL কোড লেখার প্রয়োজন হয় না। এটি ডেভেলপারদের জন্য ডেটাবেস অপারেশন অনেক সহজ করে তোলে।
এলোকোয়েন্ট ORM (Eloquent Object-Relational Mapping) হল লারাভেল এর অন্তর্নিহিত একটি টুল যা ডেটাবেস টেবিলের সাথে PHP অবজেক্ট মডেল তৈরি করে। এটি ডেটাবেসের রেকর্ডগুলির সাথে কাজ করার জন্য PHP ক্লাস ব্যবহার করে এবং SQL কোড কমানোর মাধ্যমে ডেটা পরিচালনা করতে সাহায্য করে। এলোকোয়েন্ট ORM ব্যবহার করে আপনি সহজে ডেটাবেসের CRUD (Create, Read, Update, Delete) অপারেশন করতে পারেন।
এলোকোয়েন্ট ORM এর মাধ্যমে ডেটাবেস টেবিলের সাথে সম্পর্কিত মডেল তৈরি করতে হয়। প্রতিটি মডেল একটি নির্দিষ্ট টেবিলের প্রতিনিধিত্ব করে। উদাহরণস্বরূপ, যদি আপনার ডেটাবেসে একটি posts
টেবিল থাকে, তবে আপনি Post
নামক একটি মডেল তৈরি করবেন যা সেই টেবিলের জন্য কাজ করবে।
লারাভেলে মডেল তৈরি করার জন্য php artisan make:model
কমান্ড ব্যবহার করা হয়। উদাহরণ:
php artisan make:model Post
এটি app/Models/Post.php
ফাইলে একটি নতুন মডেল তৈরি করবে।
এলোকোয়েন্ট ORM এর একটি প্রধান সুবিধা হলো, মডেল এবং টেবিলের মধ্যে সম্পর্ক নির্ধারণ করা সহজ। সাধারণভাবে, লারাভেল মডেল নামের প্লুরাল ফর্মটি ডিফল্টভাবে টেবিলের নাম হিসেবে ধরে নেয়। যেমন, Post
মডেলটির সাথে posts
টেবিল সম্পর্কিত।
এলোকোয়েন্ট ORM ব্যবহার করে আপনি ডেটাবেসে CRUD অপারেশন খুব সহজে সম্পাদন করতে পারেন।
নতুন রেকর্ড তৈরি করতে create()
মেথড ব্যবহার করা হয়:
Post::create([
'title' => 'New Post',
'content' => 'This is the content of the post.',
]);
এটি নতুন একটি পোস্ট ডেটাবেসে সংরক্ষণ করবে।
ডেটাবেস থেকে ডেটা পড়তে find()
বা all()
মেথড ব্যবহার করা হয়:
$post = Post::find(1); // id = 1 এর পোস্ট
$posts = Post::all(); // সব পোস্ট
ডেটাবেসে একটি রেকর্ড আপডেট করতে update()
মেথড ব্যবহার করা হয়:
$post = Post::find(1);
$post->update([
'title' => 'Updated Title',
'content' => 'Updated content.',
]);
ডেটাবেস থেকে একটি রেকর্ড মুছে ফেলতে delete()
মেথড ব্যবহার করা হয়:
$post = Post::find(1);
$post->delete();
এলোকোয়েন্ট ORM আপনাকে ডেটাবেস টেবিলের মধ্যে সম্পর্ক (like, one-to-many, many-to-many) স্থাপন করার সুবিধা দেয়।
ধরা যাক, User
মডেলের সাথে একে এক Profile
সম্পর্ক রয়েছে। এলোকোয়েন্টে আপনি এটি এভাবে তৈরি করবেন:
class User extends Model
{
public function profile()
{
return $this->hasOne(Profile::class);
}
}
একটি Post
মডেল এবং তার সাথে সম্পর্কিত অনেক Comment
মডেল থাকতে পারে। এটি এভাবে নির্ধারণ করা হয়:
class Post extends Model
{
public function comments()
{
return $this->hasMany(Comment::class);
}
}
এলোকোয়েন্টে belongsToMany
মেথড ব্যবহার করে many-to-many সম্পর্ক তৈরি করা যায়। যেমন, একটি User
মডেল এবং Role
মডেলের মধ্যে many-to-many সম্পর্ক:
class User extends Model
{
public function roles()
{
return $this->belongsToMany(Role::class);
}
}
এলোকোয়েন্ট ORM আপনাকে ডেটাবেসে ইনপুট করার আগে মডেল ফিল্ড ভ্যালিডেশন করার সুযোগ দেয়। আপনি fillable
বা guarded
প্রপার্টি ব্যবহার করে কনফিগার করতে পারেন কোন ফিল্ডগুলো মডেলে অ্যাসাইন করা যাবে।
class Post extends Model
{
protected $fillable = ['title', 'content'];
}
এভাবে, শুধু title
এবং content
ফিল্ডে মান ইনপুট করা যাবে, অন্য কোনো ফিল্ড ইনপুট করা যাবে না।
এলোকোয়েন্ট ORM একটি শক্তিশালী টুল যা লারাভেল ডেভেলপারদের ডেটাবেসের সাথে সম্পর্কিত কাজগুলো খুব সহজে করতে সহায়তা করে। মডেল তৈরির মাধ্যমে আপনি ডেটাবেসের টেবিলগুলোর সাথে সম্পর্ক স্থাপন করতে পারেন এবং CRUD অপারেশনসহ বিভিন্ন জটিল সম্পর্ক ম্যানেজ করতে পারবেন। এলোকোয়েন্ট ORM ডেটাবেসের সাথে কাজ করার ক্ষেত্রে একটি সিম্পল, ক্লিন এবং উন্নত পদ্ধতি প্রদান করে যা ডেভেলপমেন্ট প্রক্রিয়াকে দ্রুত এবং দক্ষ করে তোলে।